<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script type="text/javascript">
    // 1.   
    function Test(){
       this.name = name;
       this.age = age;
   }
   
   obj = {

   }
Test.call(obj,name='陈鹏',age=18)
Test.apply(obj,[name='陈鹏',age=18])

// 分别使用call，apply为obj添加name，age属性
// 实现陈鹏买车，其中有sayHi方法，功能:打印'陈鹏买了一辆红色的2.0宝马车'
function sayHi(haha){
    console.log(haha);
}
sayHi('陈鹏买了一辆红色的2.0宝马车');
// 3.父类Shape （属性有:name,length,width,方法有:Intro 我是XX形）

// 子类： Circle(属性有:r)

// 分别使用 原型链继承 构造函数继承 圣杯继承
// function Shape() {    
// }
// function Circle() {}
// Shape.prototype.name='haha';
// Shape.prototype.length=3;
// Shape.prototype.width=2;
// Shape.prototype.Intro=()=>{console.log('我是'+name+'形');}
// Circle.prototype.r=1;
// var shape=new Shape();
// Circle.prototype=shape;
// var circle=new Circle();
// Circle.prototype.name='圆';
// Circle.prototype.Intro=()=>{console.log('我是'+name+'形');}
// console.log(circle.name);


// function Shape(name) {
//     this.name=name
// }
// function Circle(name,r){
//     Shape.call(this,name)
//     this.r=r
// }
// var circle=new Circle('圆',2);
// console.log(circle.name);


function Shape() {
   
}
function Circle(){}
Shape.prototype.name='haha';
Shape.prototype.length=3;
Shape.prototype.width=2;
Shape.prototype.Intro=()=>{console.log('我是'+name+'形');}
function inherit(Target, Origin) {
    function F(){}
    F.prototype=Origin.prototype
    Target.prototype=new F
    Target.prototype.constructro=Target;
    Target.prototype.uber=Origin
}
inherit(Circle,Shape)

var circle=new Circle;
console.log();
Circle.prototype.r=3;
console.log(Circle.name);
    </script>
</body>
</html>